In [1]:
import numpy as np
from numpy import random
from StringIO import StringIO
from IPython.display import Image
import OSC
import time, sys
import time, random
client = OSC.OSCClient()
client.connect( ( '127.0.0.1', 57110 ) )

In [2]:
def oscgrain( frequency, vol, sustain ):
    msg = OSC.OSCMessage()
    msg.setAddress("s_new")
    msg.append("grain")
    msg.append(-1)
    msg.append(0)
    msg.append(1)
    msg.append("amp")
    msg.append(vol)
    msg.append("freq")
    msg.append(frequency)     #read in data points
    msg.append("sustain")
    msg.append(sustain)
    client.send(msg)

In [3]:
data = np.genfromtxt("wine_names.csv", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))

Timing

simultanously >>> for later use?!


In [49]:
data = np.genfromtxt("ppg2008.csv", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))
for i in range(np.asarray(data.shape)[1]-1):
    oscgrain(100+(1400*data_all[random.randint(0,(np.asarray(data.shape)[0])-1),i+1]), 1.0/np.asarray(data.shape)[1], 1.08)

In [160]:
data = np.genfromtxt("wine_names.csv", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))
for i in range(np.asarray(data.shape)[1]-1):
    oscgrain(100+(1400*data_all[random.randint(0,(np.asarray(data.shape)[0])-1),i+1]), 1.0/np.asarray(data.shape)[1], .06)

In [142]:
data = np.genfromtxt("iris.data", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))
for i in range(np.asarray(data.shape)[1]-1):
    oscgrain(100+(1400*data_all[random.randint(0,(np.asarray(data.shape)[0])-1),i]), 1.0/np.asarray(data.shape)[1], 1.02)

in sequence


In [145]:
for i in range(np.asarray(data.shape)[1]-1):
    oscgrain(100+(1400*data_all[random.randint(0,(np.asarray(data.shape)[0]-1)),i+1]), 1.0/np.asarray(data.shape)[1], 0.04)
    time.sleep(0.01)

In [263]:
randominput

all datapoints at once! beware audio volume!


In [147]:
for i in range(np.asarray(data.shape)[0]):
    for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information, therefore ii+1
        oscgrain(100+(1400*data_all[i,ii+1]), 0.05/np.asarray(data.shape)[1], 0.2)

all datapoints in sequence (play with loop delay settings)


In [428]:
for i in range(np.asarray(data.shape)[0]):
    for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information, therefore ii+1
        oscgrain(16+(2200*data_all[i,ii+1]), .1/np.asarray(data.shape)[1], 0.03)
        # 14*0.01=0.14 lenght/period time
        time.sleep(0.02)
    time.sleep(0.02*(np.asarray(data.shape)[1]-1))


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-428-a168520925b8> in <module>()
      3         oscgrain(16+(2200*data_all[i,ii+1]), .1/np.asarray(data.shape)[1], 0.03)
      4         # 14*0.01=0.14 lenght/period time
----> 5         time.sleep(0.02)
      6     time.sleep(0.02*(np.asarray(data.shape)[1]-1))

KeyboardInterrupt: 

Lets listen to other datasets playing all datapoint at once or in sequence


In [148]:
data = np.genfromtxt("iris.data", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))
for i in range(np.asarray(data.shape)[0]):
    for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information
        oscgrain(100+(1000*data_all[i,ii]), 0.1/np.asarray(data.shape)[1], 0.1)
        time.sleep(0.02)


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-148-a26233275c7f> in <module>()
      4     for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information
      5         oscgrain(100+(1000*data_all[i,ii]), 0.1/np.asarray(data.shape)[1], 0.1)
----> 6         time.sleep(0.02)

KeyboardInterrupt: 

In [476]:
data = np.genfromtxt("wine_names.csv", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))
for i in range(np.asarray(data.shape)[0]):
    for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information, therefore ii+1
        oscgrain(100+(1000*data_all[i,ii+1]), 0.4/np.asarray(data.shape)[1], 0.1)
        time.sleep(0.02)


---------------------------------------------------------------------------
KeyboardInterrupt                         Traceback (most recent call last)
<ipython-input-476-bf76e9312f9c> in <module>()
      4     for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information, therefore ii+1
      5         oscgrain(100+(1000*data_all[i,ii+1]), 0.4/np.asarray(data.shape)[1], 0.1)
----> 6         time.sleep(0.02)

KeyboardInterrupt: 

In [208]:
data = np.genfromtxt("ppg2008.csv", dtype=float, delimiter=',', skip_header=1) 
data_all = (data - np.min(data, axis=0))/(np.max(data, axis=0) - np.min(data, axis=0))
for i in range(np.asarray(data.shape)[0]-1):
    for ii in range (np.asarray(data.shape)[1]-1): #first dimension is class information
        oscgrain(100+(1000*data_all[i+1,ii+1]), 0.4/np.asarray(data.shape)[1], 0.1)
        time.sleep(0.02)